/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionJugadores;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import gestionJDBC.*;

/**
 *
 * @author Jesus
 */
public class FamiliaDB {
 
    private static gestorJDBC gestor = gestorJDBC.getInstance();
    
    public FamiliaDB(){}
    
    public int crearFamilia(int idJugador, String padre, String madre, int tel_dom, int tel_mov, String e){
        
       int idFamilia = -1;
       ResultSet rs;
       boolean valido;
        
        gestor.Conectar();
       
        valido = gestor.Insertar("INSERT INTO Familia (nombre_padre, nombre_madre, telefono_domicilio, "
                                            + "telefono_movil, email) "
                                            + "VALUES ('"+ padre + "','" + madre + "','" + tel_dom + "','" + tel_mov + "','" + e +"')");
        
        rs=gestor.Consultar("SELECT max(Familia.id_familia) AS max_id FROM Familia");
        try {
            rs.next();
            idFamilia=(Integer) rs.getObject("max_id");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "El numero de familiares registrados actualmente es 0\n"+ex.getMessage());
        }	
        
        if (valido)
            valido = gestor.Insertar("INSERT INTO Tiene (id_jugador, id_familia) VALUES ('"+ idJugador + "','" + idFamilia + "')");
        else 
            idFamilia = -1;
        
        gestor.Desconectar();
                
	return idFamilia;
        
    }
    
    public Familia getFamilia(int idJugador){
       	
        gestor.Conectar();
          
	ResultSet rs = gestor.Consultar("SELECT Familia.id_familia, Familia.nombre_padre, Familia.nombre_madre, Familia.telefono_domicilio,"
                                        + "Familia.telefono_movil, Familia.email FROM Familia,Tiene,Jugador "
                                        + "WHERE Tiene.id_familia = Familia.id_familia"
                                        + " and Tiene.id_jugador = Jugador.id_jugador and Jugador.id_jugador='" + idJugador+ "'");
	Familia f = new Familia();

	try {
            rs.next();
            f.setId_familia((Integer) rs.getObject("id_familia"));
            f.setNombre_padre(rs.getObject("nombre_padre").toString());
            f.setNombre_madre(rs.getObject("nombre_madre").toString());
            f.setTelefono_domicilio((Integer) rs.getObject("telefono_domicilio"));
            f.setTelefono_movil((Integer) rs.getObject("telefono_movil"));
            f.setEmail(rs.getObject("email").toString());
        } catch (SQLException e) {
	JOptionPane.showMessageDialog(null,
            "Error obtener la familia de la base de datos\n" + e.getMessage());
	}
	gestor.Desconectar();
	return f; 
    }
    
    public boolean setFamilia(int idFamilia, String padre, String madre, int tel_dom, int tel_mov, String e){
        
        gestor.Conectar();

	boolean valido = gestor.Modificar("UPDATE Familia SET nombre_padre='"+ padre +"', nombre_madre='" + madre 
                                            + "', telefono_domicilio='" + tel_dom + "',telefono_movil ='"+ tel_mov 
                                            +"', email='"+ e +"'  WHERE id_familia='"+idFamilia+"'");
	

	gestor.Desconectar();
	return valido;
        
    }
    
    public boolean borrarFamilia(int idFamilia){
        
	gestor.Conectar();
	boolean valido = gestor.Modificar("DELETE FROM Familia WHERE id='"+idFamilia+"'");
	gestor.Desconectar();

	return valido;
        
    }
    
}
